草庐IT

git pull --rebase

全部标签

windows - 如何在 Windows GUI 中执行 rebase --interactive

我有一个同事非常喜欢Windows的gitGUI界面;我想让他以交互方式rebase,这样他就可以压缩提交。我已经尝试使用Tools->Add来添加gitrebase--interactive但是当他尝试时这只是挂起。客户端可以处理交互式rebase吗?是否有另一个适用于Windows的GUI客户端可以?或者可能有另一种方式来压缩客户端中的提交? 最佳答案 没有办法通过gui来做。也就是说,有一些方法可以在没有交互式rebase的情况下压缩提交。例如,可以重置--soft3commitsago,将所有内容添加到索引并提交。这将有效地

git - git rebase 可以完全删除远程历史记录吗?

当我们考虑在工作中从SVN迁移到git时,一位同事提出了一个问题,即恶意或容易发生事故的开发人员可能会使用gitrebase从我们的共享存储库中删除远程历史记录。编辑:正如答案中所指出的,也可以使用gitpushorigin:branch-name从远程仓库中删除整个分支。这是一个现实问题吗?如果是这样,我们可以采取什么方法来防止它? 最佳答案 我倾向于同意您同事的看法,这里存在问题,因为:无论您多么信任您的提交者,人为错误的可能性始终存在更繁琐的审核流程(例如Gerrit)并不总是合适的从备份中恢复可能会很慢而且像PITA您是否考

Git post-rebase 钩子(Hook)

有没有post-rebasehook之类的东西?我的目标是我想要一个脚本在之后执行gitpull--rebase使用命令。 最佳答案 似乎重写后Hook完成了这项工作。 关于Gitpost-rebase钩子(Hook),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/21307744/

git - SourceTree - rebase - merge 期间的错误

我正在尝试做一些简单的事情,比如编辑上一次提交的提交消息。正在检查gitstatus我有:nothingtocommit,workingdirectoryclean然后我单击提交并执行SourceTree>Repository>InteractiveRebase...但是得到这个对话框,以及一个完全空白/空的描述区域:注意:我在某处读到这可能是由于FileMerge创建了一个.orig备份文件。但是,查看FileMerge首选项我没有看到任何关于备份文件的信息 最佳答案 在终端中尝试:gitrebase--continue您将看到一

Git rebase --preserve-merges 失败

我有一个(大)提交树,其中包含我想重新绑定(bind)到另一个提交的几个merge提交。执行正常的rebase会导致git要求我解决merge冲突。我不想审查每个merge,因为这将是很多工作。在了解--preserve-merges选项后,该选项得到了巧妙的解释here,我以为我找到了完成这项任务的完美工具。但是,我似乎无法让它正常工作。我创建了一个演示问题的玩具示例。从一个空文件夹开始,我们首先创建一个带有merge的分支和另一个我们将在其上rebase的分支。A---B--\\---C---D\---E其中master指的是B,branch指的是D,而goodbye-branch

Git:差异 "git rebase origin/branch"VS "git rebase origin branch"

谁知道有什么区别?在我看来,它是一样的。但是当我运行它时,它并没有做同样的事情:gitrebaseorigin/branch-可以从远程分支进行rebasegitrebaseoriginbranch-产生冲突 最佳答案 @Mar的回答很对,完美的解决了这个问题,加个评论吧。如果你想基于远程master分支rebase一个分支,gitrebaseorigin/master是不够的,它不会直接从origin/master获取新的提交。你需要在gitrebaseorigin/master之前gitfetch。或者您可以使用另一种方式来re

git rebase 并保留所有子分支

我正在尝试将CVS存储库导入git。不幸的是,我们一直在使用一种非常古老的方法从我们的CVS存储库创建版本,它不涉及任何实际的CVS分支或标签,而是将这些信息保存在一个单独的系统中。因此,几乎所有的开发都发生在CVS主干上。因此,一个文件可能会在历史记录的很早的时候添加,但在6个月内不会成为发布的一部分。我想做的是将这个CVS存储库导入到git中,并使用rebase将这些提交移动到开发分支。不过,我确实有一些来自CVS的分支,所以我真的很想移动所有分支。说我有这个:F---G---Htopic/A---B---C---D---E---I---JmasterB是我想移动到它自己的分支的提

GIT Rebase 一个协作的分支?

阅读本文后,rebase以将更改从主分支收集到我的功能分支是有意义的:Gitworkflowandrebasevsmergequestionsclonetheremoterepogitcheckout-bmy_new_feature..workandcommitsomestuffgitrebasemaster..workandcommitsomestuffgitrebasemaster..finishthefeaturegitcheckoutmastergitmergemy_new_feature如果特性分支在我的机器本地并且我可以随心所欲地重写历史,这会很好用。但是,如果我在功能分支

git - 如何 rebase 并按时间顺序保持提交?

我想在master分支上重新设置一个分支,但所有提交都按时间顺序显示在git日志中。如果没有gitrebase--interactive并手动重新安排提交,这是否可能?背景:我正在使用git来跟踪服务器场的puppet配置。master分支始终处于已知的良好状态,以便所有现有服务器都可以从puppet主服务器检索它们的配置。每个新服务器都有自己的分支,所以每当我对新服务器进行配置时,例如更改域名、配置SSL证书,我都会检查其分支并提交所有配置。新配置完成后,我将更改重新设置到master分支上:#gitcheckoutnew_configSwitchedtobranch'new_con

git:使用 "commit --cleanup=whitespace"和 "rebase --interactive"

我想在创建/编辑提交消息时始终使用--cleanup=whitespace(以允许初始“#”)。不幸的是,我找不到合适的设置来放入~/.gitconfig;这个不行:[commit]cleanup=whitespace对于正常提交,我将--cleanup=whitespace添加到我的主要提交别名中,但是我不知道如何将此选项传递给gitrebase--interactive以便我可以改写和压缩提交并使用我喜欢的清理方法。 最佳答案 在git1.8.2他们添加了我尝试使用的设置:"gitcommit"canbetoldtouse--c